package usbcali.edu.dataaccess.daoFactory;

import usbcali.edu.dataaccess.dao.*;


/**
 * Factory for Data Access Objects Strategy The DAO pattern can be made highly flexible
 * by adopting the Abstract Factory [GoF] and the Factory Method [GoF] patterns.
 * When the underlying storage is not subject to change from one implementation to another,
 * this strategy can be implemented using the Factory Method pattern to produce a number of DAOs needed by the application.
 * This class is a Factory Method pattern
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura
 */
public class XMLHibernateDaoFactory {
    private static XMLHibernateDaoFactory instance = null;

    private XMLHibernateDaoFactory() {
    }

    /**
    *
    * @return HibernateDaoFactory
    */
    public static XMLHibernateDaoFactory getInstance() {
        if (instance == null) {
            instance = new XMLHibernateDaoFactory();
        }

        return instance;
    }

    /**
    * This method instantiates the ICargosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ICargosDAO implementation
    */
    public ICargosDAO getCargosDAO() {
        return new CargosDAO();
    }

    /**
    * This method instantiates the ICcUsuarioDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ICcUsuarioDAO implementation
    */
    public ICcUsuarioDAO getCcUsuarioDAO() {
        return new CcUsuarioDAO();
    }

    /**
    * This method instantiates the ICentroDeCostosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ICentroDeCostosDAO implementation
    */
    public ICentroDeCostosDAO getCentroDeCostosDAO() {
        return new CentroDeCostosDAO();
    }

    /**
    * This method instantiates the IClaseAlimentoDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IClaseAlimentoDAO implementation
    */
    public IClaseAlimentoDAO getClaseAlimentoDAO() {
        return new ClaseAlimentoDAO();
    }

    /**
    * This method instantiates the IComposicionSalaDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IComposicionSalaDAO implementation
    */
    public IComposicionSalaDAO getComposicionSalaDAO() {
        return new ComposicionSalaDAO();
    }

    /**
    * This method instantiates the IDepartamentosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IDepartamentosDAO implementation
    */
    public IDepartamentosDAO getDepartamentosDAO() {
        return new DepartamentosDAO();
    }

    /**
    * This method instantiates the IElemAudiovisualesDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IElemAudiovisualesDAO implementation
    */
    public IElemAudiovisualesDAO getElemAudiovisualesDAO() {
        return new ElemAudiovisualesDAO();
    }

    /**
    * This method instantiates the IEntidadesDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IEntidadesDAO implementation
    */
    public IEntidadesDAO getEntidadesDAO() {
        return new EntidadesDAO();
    }

    /**
    * This method instantiates the IFuncionariosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IFuncionariosDAO implementation
    */
    public IFuncionariosDAO getFuncionariosDAO() {
        return new FuncionariosDAO();
    }

    /**
    * This method instantiates the IHorarioRxsalaDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IHorarioRxsalaDAO implementation
    */
    public IHorarioRxsalaDAO getHorarioRxsalaDAO() {
        return new HorarioRxsalaDAO();
    }

    /**
    * This method instantiates the IImagenFormasDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IImagenFormasDAO implementation
    */
    public IImagenFormasDAO getImagenFormasDAO() {
        return new ImagenFormasDAO();
    }

    /**
    * This method instantiates the IProSerOfrecenDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IProSerOfrecenDAO implementation
    */
    public IProSerOfrecenDAO getProSerOfrecenDAO() {
        return new ProSerOfrecenDAO();
    }

    /**
    * This method instantiates the IProveedoresDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IProveedoresDAO implementation
    */
    public IProveedoresDAO getProveedoresDAO() {
        return new ProveedoresDAO();
    }

    /**
    * This method instantiates the IRDRequerimientosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IRDRequerimientosDAO implementation
    */
    public IRDRequerimientosDAO getRDRequerimientosDAO() {
        return new RDRequerimientosDAO();
    }

    /**
    * This method instantiates the IReservasDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IReservasDAO implementation
    */
    public IReservasDAO getReservasDAO() {
        return new ReservasDAO();
    }

    /**
    * This method instantiates the IReservaxrequerimientDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IReservaxrequerimientDAO implementation
    */
    public IReservaxrequerimientDAO getReservaxrequerimientDAO() {
        return new ReservaxrequerimientDAO();
    }

    /**
    * This method instantiates the IRestaurantesDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IRestaurantesDAO implementation
    */
    public IRestaurantesDAO getRestaurantesDAO() {
        return new RestaurantesDAO();
    }

    /**
    * This method instantiates the IRHorariosReservaDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IRHorariosReservaDAO implementation
    */
    public IRHorariosReservaDAO getRHorariosReservaDAO() {
        return new RHorariosReservaDAO();
    }

    /**
    * This method instantiates the ISalasDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISalasDAO implementation
    */
    public ISalasDAO getSalasDAO() {
        return new SalasDAO();
    }

    /**
    * This method instantiates the ISalasxusuariosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISalasxusuariosDAO implementation
    */
    public ISalasxusuariosDAO getSalasxusuariosDAO() {
        return new SalasxusuariosDAO();
    }

    /**
    * This method instantiates the ISalaxtformaDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISalaxtformaDAO implementation
    */
    public ISalaxtformaDAO getSalaxtformaDAO() {
        return new SalaxtformaDAO();
    }

    /**
    * This method instantiates the ISeccionesDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISeccionesDAO implementation
    */
    public ISeccionesDAO getSeccionesDAO() {
        return new SeccionesDAO();
    }

    /**
    * This method instantiates the ISerOfrecenDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISerOfrecenDAO implementation
    */
    public ISerOfrecenDAO getSerOfrecenDAO() {
        return new SerOfrecenDAO();
    }

    /**
    * This method instantiates the ISolAlixfuncionariosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISolAlixfuncionariosDAO implementation
    */
    public ISolAlixfuncionariosDAO getSolAlixfuncionariosDAO() {
        return new SolAlixfuncionariosDAO();
    }

    /**
    * This method instantiates the ISolEventosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISolEventosDAO implementation
    */
    public ISolEventosDAO getSolEventosDAO() {
        return new SolEventosDAO();
    }

    /**
    * This method instantiates the ISoliAliAsisExternosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISoliAliAsisExternosDAO implementation
    */
    public ISoliAliAsisExternosDAO getSoliAliAsisExternosDAO() {
        return new SoliAliAsisExternosDAO();
    }

    /**
    * This method instantiates the ISolicitAlimAstExterDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISolicitAlimAstExterDAO implementation
    */
    public ISolicitAlimAstExterDAO getSolicitAlimAstExterDAO() {
        return new SolicitAlimAstExterDAO();
    }

    /**
    * This method instantiates the ISoltAlimentosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISoltAlimentosDAO implementation
    */
    public ISoltAlimentosDAO getSoltAlimentosDAO() {
        return new SoltAlimentosDAO();
    }

    /**
    * This method instantiates the ISubAreaDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ISubAreaDAO implementation
    */
    public ISubAreaDAO getSubAreaDAO() {
        return new SubAreaDAO();
    }

    /**
    * This method instantiates the ITAlimentosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITAlimentosDAO implementation
    */
    public ITAlimentosDAO getTAlimentosDAO() {
        return new TAlimentosDAO();
    }

    /**
    * This method instantiates the ITarifaAlimentosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITarifaAlimentosDAO implementation
    */
    public ITarifaAlimentosDAO getTarifaAlimentosDAO() {
        return new TarifaAlimentosDAO();
    }

    /**
    * This method instantiates the ITElementosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITElementosDAO implementation
    */
    public ITElementosDAO getTElementosDAO() {
        return new TElementosDAO();
    }

    /**
    * This method instantiates the ITForSalasDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITForSalasDAO implementation
    */
    public ITForSalasDAO getTForSalasDAO() {
        return new TForSalasDAO();
    }

    /**
    * This method instantiates the ITiposolicitudesDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITiposolicitudesDAO implementation
    */
    public ITiposolicitudesDAO getTiposolicitudesDAO() {
        return new TiposolicitudesDAO();
    }

    /**
    * This method instantiates the ITipoTrabajoDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITipoTrabajoDAO implementation
    */
    public ITipoTrabajoDAO getTipoTrabajoDAO() {
        return new TipoTrabajoDAO();
    }

    /**
    * This method instantiates the ITipoUsuariosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITipoUsuariosDAO implementation
    */
    public ITipoUsuariosDAO getTipoUsuariosDAO() {
        return new TipoUsuariosDAO();
    }

    /**
    * This method instantiates the ITProveedoresDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return ITProveedoresDAO implementation
    */
    public ITProveedoresDAO getTProveedoresDAO() {
        return new TProveedoresDAO();
    }

    /**
    * This method instantiates the IUsuariosDAO class for HibernateCore
    * that is used in this applications deployment environment to access the data.
    * @return IUsuariosDAO implementation
    */
    public IUsuariosDAO getUsuariosDAO() {
        return new UsuariosDAO();
    }
}
